[INFO] cloning repository https://github.com/Christian7573/glap-rs-server
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Christian7573/glap-rs-server" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChristian7573%2Fglap-rs-server", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChristian7573%2Fglap-rs-server'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0729344b169fa58cd701b12034974631b6258f2b
[INFO] checking Christian7573/glap-rs-server against master#cfbc6d4cf1acbac5c025acf8ed68929caa551df3 for pr-75494-beta
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChristian7573%2Fglap-rs-server" "/workspace/builds/worker-8/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-8/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Christian7573/glap-rs-server on toolchain cfbc6d4cf1acbac5c025acf8ed68929caa551df3
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Christian7573/glap-rs-server
[INFO] finished tweaking git repo https://github.com/Christian7573/glap-rs-server
[INFO] tweaked toml for git repo https://github.com/Christian7573/glap-rs-server written to /workspace/builds/worker-8/source/Cargo.toml
[INFO] crate git repo https://github.com/Christian7573/glap-rs-server already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded event-listener v2.3.0
[INFO] [stderr]   Downloaded concurrent-queue v1.2.0
[INFO] [stderr]   Downloaded byte v0.2.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] e9d3aa42cf9a0b531ab14e959771f3167ed7a0c294e1ede0458aa84b0be31dce
[INFO] running `Command { std: "docker" "start" "-a" "e9d3aa42cf9a0b531ab14e959771f3167ed7a0c294e1ede0458aa84b0be31dce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e9d3aa42cf9a0b531ab14e959771f3167ed7a0c294e1ede0458aa84b0be31dce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e9d3aa42cf9a0b531ab14e959771f3167ed7a0c294e1ede0458aa84b0be31dce", kill_on_drop: false }`
[INFO] [stdout] e9d3aa42cf9a0b531ab14e959771f3167ed7a0c294e1ede0458aa84b0be31dce
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 17f33cced6951852b18e416585daa8f72e51d5f3b54f068a8019a734f8eb1839
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "17f33cced6951852b18e416585daa8f72e51d5f3b54f068a8019a734f8eb1839", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]    Compiling syn v1.0.36
[INFO] [stderr]    Compiling libc v0.2.74
[INFO] [stderr]    Compiling proc-macro-hack v0.5.18
[INFO] [stderr]     Checking futures-core v0.3.5
[INFO] [stderr]    Compiling typenum v1.12.0
[INFO] [stderr]    Compiling libm v0.2.1
[INFO] [stderr]    Compiling getrandom v0.1.14
[INFO] [stderr]    Compiling pin-project-internal v0.4.23
[INFO] [stderr]    Compiling proc-macro-nested v0.1.6
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.8
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]     Checking pin-project-lite v0.1.7
[INFO] [stderr]     Checking event-listener v2.3.0
[INFO] [stderr]     Checking matches v0.1.8
[INFO] [stderr]     Checking tinyvec v0.3.3
[INFO] [stderr]     Checking bytes v0.5.6
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]    Compiling httparse v1.3.4
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]     Checking itoa v0.4.6
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]     Checking base64 v0.12.3
[INFO] [stderr]     Checking byte v0.2.4
[INFO] [stderr]     Checking generational-arena v0.2.8
[INFO] [stderr]     Checking concurrent-queue v1.2.0
[INFO] [stderr]     Checking futures-channel v0.3.5
[INFO] [stderr]     Checking unicode-bidi v0.3.4
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]     Checking unicode-normalization v0.1.13
[INFO] [stderr]     Checking futures-lite v0.1.10
[INFO] [stderr]     Checking async-channel v1.4.0
[INFO] [stderr]     Checking http v0.2.1
[INFO] [stderr]     Checking input_buffer v0.3.1
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]    Compiling hashbrown v0.8.1
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling num-integer v0.1.43
[INFO] [stderr]    Compiling indexmap v1.5.0
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]     Checking kv-log-macro v1.0.7
[INFO] [stderr]     Checking blocking v0.4.7
[INFO] [stderr]     Checking socket2 v0.3.12
[INFO] [stderr]     Checking time v0.1.43
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking idna v0.2.0
[INFO] [stderr]    Compiling paste-impl v0.1.18
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking instant v0.1.6
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking petgraph v0.5.1
[INFO] [stderr]     Checking generic-array v0.12.3
[INFO] [stderr]     Checking generic-array v0.13.2
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking url v2.1.1
[INFO] [stderr]     Checking paste v0.1.18
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking digest v0.8.1
[INFO] [stderr]     Checking block-buffer v0.7.3
[INFO] [stderr]     Checking sha-1 v0.8.2
[INFO] [stderr]     Checking simba v0.1.5
[INFO] [stderr]     Checking rand_distr v0.2.2
[INFO] [stderr]     Checking tungstenite v0.11.0
[INFO] [stderr]     Checking nalgebra v0.21.1
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.67
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.67
[INFO] [stderr]    Compiling futures-macro v0.3.5
[INFO] [stderr]    Compiling async-attributes v1.1.1
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.67
[INFO] [stderr]     Checking wasm-bindgen v0.2.67
[INFO] [stderr]     Checking pin-project v0.4.23
[INFO] [stderr]     Checking js-sys v0.3.44
[INFO] [stderr]     Checking futures-util v0.3.5
[INFO] [stderr]     Checking web-sys v0.3.44
[INFO] [stderr]     Checking smol v0.1.18
[INFO] [stderr]     Checking futures-executor v0.3.5
[INFO] [stderr]     Checking futures v0.3.5
[INFO] [stderr]     Checking gloo-timers v0.2.1
[INFO] [stderr]     Checking futures-timer v3.0.2
[INFO] [stderr]     Checking async-std v1.6.2
[INFO] [stderr]     Checking ncollide2d v0.23.2
[INFO] [stderr]     Checking async-tungstenite v0.8.0
[INFO] [stderr]     Checking nphysics2d v0.16.1
[INFO] [stderr]     Checking glap-rs-server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/world/mod.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                                  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nphysics2d::force_generator::DefaultForceGeneratorSet`
[INFO] [stdout]  --> src/world/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nphysics2d::force_generator::DefaultForceGeneratorSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RigidBody`
[INFO] [stdout]  --> src/world/planets.rs:2:26
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nphysics2d::object::{RigidBody, RigidBodyDesc, BodyStatus, BodyPartHandle};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Collider`, `RigidBody`
[INFO] [stdout]  --> src/world/parts.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nphysics2d::object::{RigidBody, Body, RigidBodyDesc, Collider, ColliderDesc, BodyPartHandle, BodyStatus};
[INFO] [stdout]   |                          ^^^^^^^^^                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nphysics2d::math::Isometry`
[INFO] [stdout]  --> src/world/parts.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nphysics2d::math::Isometry;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `One`
[INFO] [stdout]  --> src/world/parts.rs:7:36
[INFO] [stdout]   |
[INFO] [stdout] 7 | use num_traits::identities::{Zero, One};
[INFO] [stdout]   |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:107:15
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 session = {if buf[*index] > 0 {*index += 1; let tmp; tmp = type_string_deserialize(&buf, index)?; Some(tmp)} else {*index += 1; None}};
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:231:21
[INFO] [stdout]     |
[INFO] [stdout] 231 | ...[*index] > 0 {*index += 1; let tmp; tmp = type_u16_deserialize(&buf, index)?; Some(tmp)} else {*index += 1; None}};
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Body`
[INFO] [stdout]  --> src/session.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nphysics2d::object::{Body, BodySet, RigidBody};
[INFO] [stdout]   |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MyHandle`
[INFO] [stdout]  --> src/session.rs:9:20
[INFO] [stdout]   |
[INFO] [stdout] 9 | use super::world::{MyHandle, MyUnits};
[INFO] [stdout]   |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PartKind`, `Part`
[INFO] [stdout]   --> src/session.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::world::parts::{Part, PartKind};
[INFO] [stdout]    |                           ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UnitComplex`
[INFO] [stdout]    --> src/main.rs:110:76
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 use nalgebra::Vector2; use nalgebra::geometry::{Isometry2, UnitComplex};
[INFO] [stdout]     |                                                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nphysics2d::object::Body`
[INFO] [stdout]    --> src/main.rs:116:25
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     use nphysics2d::object::Body;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/world/mod.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                                  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nphysics2d::force_generator::DefaultForceGeneratorSet`
[INFO] [stdout]  --> src/world/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nphysics2d::force_generator::DefaultForceGeneratorSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RigidBody`
[INFO] [stdout]  --> src/world/planets.rs:2:26
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nphysics2d::object::{RigidBody, RigidBodyDesc, BodyStatus, BodyPartHandle};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Collider`, `RigidBody`
[INFO] [stdout]  --> src/world/parts.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nphysics2d::object::{RigidBody, Body, RigidBodyDesc, Collider, ColliderDesc, BodyPartHandle, BodyStatus};
[INFO] [stdout]   |                          ^^^^^^^^^                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nphysics2d::math::Isometry`
[INFO] [stdout]  --> src/world/parts.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nphysics2d::math::Isometry;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `One`
[INFO] [stdout]  --> src/world/parts.rs:7:36
[INFO] [stdout]   |
[INFO] [stdout] 7 | use num_traits::identities::{Zero, One};
[INFO] [stdout]   |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:107:15
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 session = {if buf[*index] > 0 {*index += 1; let tmp; tmp = type_string_deserialize(&buf, index)?; Some(tmp)} else {*index += 1; None}};
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:231:21
[INFO] [stdout]     |
[INFO] [stdout] 231 | ...[*index] > 0 {*index += 1; let tmp; tmp = type_u16_deserialize(&buf, index)?; Some(tmp)} else {*index += 1; None}};
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Body`
[INFO] [stdout]  --> src/session.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nphysics2d::object::{Body, BodySet, RigidBody};
[INFO] [stdout]   |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MyHandle`
[INFO] [stdout]  --> src/session.rs:9:20
[INFO] [stdout]   |
[INFO] [stdout] 9 | use super::world::{MyHandle, MyUnits};
[INFO] [stdout]   |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PartKind`, `Part`
[INFO] [stdout]   --> src/session.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::world::parts::{Part, PartKind};
[INFO] [stdout]    |                           ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UnitComplex`
[INFO] [stdout]    --> src/main.rs:110:76
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 use nalgebra::Vector2; use nalgebra::geometry::{Isometry2, UnitComplex};
[INFO] [stdout]     |                                                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nphysics2d::object::Body`
[INFO] [stdout]    --> src/main.rs:116:25
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     use nphysics2d::object::Body;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let mut free_parts: BTreeMap<u16, world::parts::Part> = BTreeMap::new();
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let mut free_parts: BTreeMap<u16, world::parts::Part> = BTreeMap::new();
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BodySet`
[INFO] [stdout]  --> src/session.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nphysics2d::object::{Body, BodySet, RigidBody};
[INFO] [stdout]   |                                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/main.rs:83:22
[INFO] [stdout]    |
[INFO] [stdout] 83 |                 for (id, session) in &mut event_source.sessions { session.update_world(&move_messages); }
[INFO] [stdout]    |                      ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/main.rs:149:26
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     for (id, part) in &free_parts { send_part(part, &None, &mut simulation, &mut socket); };
[INFO] [stdout]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BodySet`
[INFO] [stdout]  --> src/session.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nphysics2d::object::{Body, BodySet, RigidBody};
[INFO] [stdout]   |                                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/main.rs:83:22
[INFO] [stdout]    |
[INFO] [stdout] 83 |                 for (id, session) in &mut event_source.sessions { session.update_world(&move_messages); }
[INFO] [stdout]    |                      ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/main.rs:149:26
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     for (id, part) in &free_parts { send_part(part, &None, &mut simulation, &mut socket); };
[INFO] [stdout]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `myself`
[INFO] [stdout]   --> src/session.rs:68:41
[INFO] [stdout]    |
[INFO] [stdout] 68 |         if let Session::Spawned(socket, myself) = self {
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_myself`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `myself`
[INFO] [stdout]   --> src/session.rs:68:41
[INFO] [stdout]    |
[INFO] [stdout] 68 |         if let Session::Spawned(socket, myself) = self {
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_myself`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]    --> src/session.rs:102:60
[INFO] [stdout]     |
[INFO] [stdout] 102 | ...                   Ok(ToServerMsg::Handshake{ client, session }) => {
[INFO] [stdout]     |                                                  ^^^^^^ help: try ignoring the field: `client: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session`
[INFO] [stdout]    --> src/session.rs:102:68
[INFO] [stdout]     |
[INFO] [stdout] 102 | ...                   Ok(ToServerMsg::Handshake{ client, session }) => {
[INFO] [stdout]     |                                                          ^^^^^^^ help: try ignoring the field: `session: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]    --> src/session.rs:127:61
[INFO] [stdout]     |
[INFO] [stdout] 127 | ...                   Ok(ToServerMsg::Handshake { client, session }) => { todo!() }
[INFO] [stdout]     |                                                   ^^^^^^ help: try ignoring the field: `client: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session`
[INFO] [stdout]    --> src/session.rs:127:69
[INFO] [stdout]     |
[INFO] [stdout] 127 | ...                   Ok(ToServerMsg::Handshake { client, session }) => { todo!() }
[INFO] [stdout]     |                                                           ^^^^^^^ help: try ignoring the field: `session: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]    --> src/session.rs:102:60
[INFO] [stdout]     |
[INFO] [stdout] 102 | ...                   Ok(ToServerMsg::Handshake{ client, session }) => {
[INFO] [stdout]     |                                                  ^^^^^^ help: try ignoring the field: `client: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session`
[INFO] [stdout]    --> src/session.rs:102:68
[INFO] [stdout]     |
[INFO] [stdout] 102 | ...                   Ok(ToServerMsg::Handshake{ client, session }) => {
[INFO] [stdout]     |                                                          ^^^^^^^ help: try ignoring the field: `session: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]    --> src/session.rs:127:61
[INFO] [stdout]     |
[INFO] [stdout] 127 | ...                   Ok(ToServerMsg::Handshake { client, session }) => { todo!() }
[INFO] [stdout]     |                                                   ^^^^^^ help: try ignoring the field: `client: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session`
[INFO] [stdout]    --> src/session.rs:127:69
[INFO] [stdout]     |
[INFO] [stdout] 127 | ...                   Ok(ToServerMsg::Handshake { client, session }) => { todo!() }
[INFO] [stdout]     |                                                           ^^^^^^^ help: try ignoring the field: `session: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/world/mod.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let mut mechanics = MyMechanicalWorld::new(Vector2::new(0.0, 0.0));
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/world/mod.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut geometry: MyGeometricalWorld = MyGeometricalWorld::new();
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/world/mod.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let mut mechanics = MyMechanicalWorld::new(Vector2::new(0.0, 0.0));
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/world/mod.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut geometry: MyGeometricalWorld = MyGeometricalWorld::new();
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/session.rs:87:29
[INFO] [stdout]    |
[INFO] [stdout] 87 |                         let mut socket: MyWebSocket = stream.into();
[INFO] [stdout]    |                             ----^^^^^^
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/session.rs:87:29
[INFO] [stdout]    |
[INFO] [stdout] 87 |                         let mut socket: MyWebSocket = stream.into();
[INFO] [stdout]    |                             ----^^^^^^
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `x`
[INFO] [stdout]   --> src/session.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     x: f32, y: f32
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `y`
[INFO] [stdout]   --> src/session.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |     x: f32, y: f32
[INFO] [stdout]    |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `x`
[INFO] [stdout]   --> src/session.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     x: f32, y: f32
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `y`
[INFO] [stdout]   --> src/session.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |     x: f32, y: f32
[INFO] [stdout]    |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/world/parts.rs:119:74
[INFO] [stdout]     |
[INFO] [stdout] 119 | ...alThrustMode) { std::mem::replace::<CompactThrustMode>(self, CompactThrustMode::new(horizontal, self.get_vertical())); }
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/world/parts.rs:120:68
[INFO] [stdout]     |
[INFO] [stdout] 120 | ...alThrustMode) { std::mem::replace::<CompactThrustMode>(self, CompactThrustMode::new(self.get_horizontal(), vertical)); }
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/world/parts.rs:121:93
[INFO] [stdout]     |
[INFO] [stdout] 121 | ...erticalThrustMode) { std::mem::replace::<CompactThrustMode>(self, CompactThrustMode::new(horizontal, vertical)); }
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/codec.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     out.write_with::<f32>(&mut index, *float, BE);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/codec.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     out.write_with::<u16>(&mut index, *ushort, byte::BE);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/session.rs:89:25
[INFO] [stdout]    |
[INFO] [stdout] 89 |                         std::mem::replace(self.get_mut(), Session::AwaitingHandshake(socket));
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::task::Poll` that must be used
[INFO] [stdout]    --> src/session.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 146 |         Pin::new(&mut self.socket).poll_flush(ctx);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Poll` may be a `Pending` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/world/parts.rs:119:74
[INFO] [stdout]     |
[INFO] [stdout] 119 | ...alThrustMode) { std::mem::replace::<CompactThrustMode>(self, CompactThrustMode::new(horizontal, self.get_vertical())); }
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/world/parts.rs:120:68
[INFO] [stdout]     |
[INFO] [stdout] 120 | ...alThrustMode) { std::mem::replace::<CompactThrustMode>(self, CompactThrustMode::new(self.get_horizontal(), vertical)); }
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/world/parts.rs:121:93
[INFO] [stdout]     |
[INFO] [stdout] 121 | ...erticalThrustMode) { std::mem::replace::<CompactThrustMode>(self, CompactThrustMode::new(horizontal, vertical)); }
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/codec.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     out.write_with::<f32>(&mut index, *float, BE);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/codec.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     out.write_with::<u16>(&mut index, *ushort, byte::BE);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/session.rs:89:25
[INFO] [stdout]    |
[INFO] [stdout] 89 |                         std::mem::replace(self.get_mut(), Session::AwaitingHandshake(socket));
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::task::Poll` that must be used
[INFO] [stdout]    --> src/session.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 146 |         Pin::new(&mut self.socket).poll_flush(ctx);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Poll` may be a `Pending` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 34 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 34 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2m 08s
[INFO] running `Command { std: "docker" "inspect" "17f33cced6951852b18e416585daa8f72e51d5f3b54f068a8019a734f8eb1839", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "17f33cced6951852b18e416585daa8f72e51d5f3b54f068a8019a734f8eb1839", kill_on_drop: false }`
[INFO] [stdout] 17f33cced6951852b18e416585daa8f72e51d5f3b54f068a8019a734f8eb1839
